package com.biz;

import com.bean.Goods;

import com.dto.goods.GoodsBaseInfoDTO;
import com.dto.goods.GoodsUpdateDTO;
import com.exception.BizException;
import com.exception.DeleteException;
import com.exception.InsertException;
import com.exception.UpdateException;

import java.util.List;
import java.util.Map;

/**
 * @author FatterShadystart
 * @create 2023-02-09 14:41
 */
public interface GoodsBizService {





    /**
     * 分页模糊查询根据email、status、goodsRole查询商品
     * @param goodsBaseInfoDTO
     */
    Map<String,Object> queryGoodsByCondition(GoodsBaseInfoDTO goodsBaseInfoDTO);


    /**
     * 分页查询所有商品
     * @param goodsBaseInfoDTO
     */
    Map<String,Object> queryGoodsAllByPage(GoodsBaseInfoDTO goodsBaseInfoDTO);


    /**
     * 商品插入
     * @param goodsBaseInfoDTO
     */
    void insertGoods(GoodsBaseInfoDTO goodsBaseInfoDTO) throws InsertException;

    /**
     * 商品删除
     * @param goodsIdList
     * @param updatorId
     * @throws DeleteException
     */
    void deleteBatchGoods(List<Long> goodsIdList, Long updatorId) throws DeleteException;

    void updateGoods(GoodsUpdateDTO goodsUpdateDTO, Long updatorId) throws UpdateException;

//    /**
//     * 商品更新
//     * @param goodsUpdateDTO
//     */
//    void updateGoods(GoodsUpdateDTO goodsUpdateDTO,Long updatorId) throws UpdateException;
//
//
//    /**
//     * 商品删除
//     * @param goodsBaseInfoDTO
//     */
//    void deleteGoods(GoodsBaseInfoDTO goodsBaseInfoDTO) throws DeleteException;
//
//
//    /**
//     * 批量删除商品
//     * @param goodsIdList
//     * @param updatorId
//     */
//   void  deleteBatchGoods(List<Long> goodsIdList,Long updatorId) throws DeleteException;


}
